package com.xiao.singleapp.dao;

import java.util.List;
import java.util.Map;

/**
 * @CreateBy 花和尚  1130365579@qq.com  2023/3/19 16:10
 * @Version 1.0
 */
public interface GenCodeDao {

    /**
     * 获得当前连接的数据库下的所有的表信息
     * 数据结构如下 一个map 代表一张表
     * Map 包含的key 有 tableName（表名），ENGINE（存储引擎），tableComment（表实体说明），createTime（表创建的时间）
     *
     * @return
     */
    List<Map<String, String>> list();

    /**
     * 获得指定表的信息
     * 数据结构如下 一个map 代表一张表 指定表名 list 内只会有一个Map 对象
     * Map 包含的key 有 tableName（表名），ENGINE（存储引擎），tableComment（表实体说明），createTime（表创建的时间）
     *
     * @param tableName 表名
     * @return
     */
    Map<String, String> listByTableName(String tableName);


    /**
     * 获得表的所有字段
     * 数据结构如下
     * 一个字段一个Map
     * Map 包含的 key 有：
     * columnName（字段名）
     * dataType（数据库字段声明类型）
     * columnComment （字段说明）
     * columnKey（字段key）
     * extra（字段额外声明）
     * column_type （字段数据类型完整声明 包含长度）
     *
     * @param tableName 表名
     * @return
     */
    List<Map<String, String>> listColumns(String tableName);


}
